/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.persistencia.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author root
 */
@Entity
@Table(name = "proceso")
@NamedQueries({
    @NamedQuery(name = "Proceso.findAll", query = "SELECT p FROM Proceso p"),
    @NamedQuery(name = "Proceso.findByCodproceso", query = "SELECT p FROM Proceso p WHERE p.codproceso = :codproceso"),
    @NamedQuery(name = "Proceso.findByNombreproceso", query = "SELECT p FROM Proceso p WHERE p.nombreproceso = :nombreproceso"),
    @NamedQuery(name = "Proceso.findByDescripcionproceso", query = "SELECT p FROM Proceso p WHERE p.descripcionproceso = :descripcionproceso"),
    @NamedQuery(name = "Proceso.findByDigitador", query = "SELECT p FROM Proceso p WHERE p.digitador = :digitador"),
    @NamedQuery(name = "Proceso.findByFechadigitador", query = "SELECT p FROM Proceso p WHERE p.fechadigitador = :fechadigitador")})
public class Proceso implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "codproceso")
    private String codproceso;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "nombreproceso")
    private String nombreproceso;
    @Size(max = 2147483647)
    @Column(name = "descripcionproceso")
    private String descripcionproceso;
    @Basic(optional = false)
    @NotNull
    @Column(name = "digitador")
    private int digitador;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechadigitador")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechadigitador;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "procesoFk")
    private List<Noconformidad> noconformidadList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "procesoFk")
    private List<Detalleordenproduccion> detalleordenproduccionList;
    @JoinColumn(name = "lineaproduccion_fk", referencedColumnName = "numerolineaproduccion")
    @ManyToOne(optional = false)
    private Lineaproduccion lineaproduccionFk;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "procesoFk")
    private List<Tiempoproduccion> tiempoproduccionList;

    public Proceso() {
    }

    public Proceso(String codproceso) {
        this.codproceso = codproceso;
    }

    public Proceso(String codproceso, String nombreproceso, int digitador, Date fechadigitador) {
        this.codproceso = codproceso;
        this.nombreproceso = nombreproceso;
        this.digitador = digitador;
        this.fechadigitador = fechadigitador;
    }

    public String getCodproceso() {
        return codproceso;
    }

    public void setCodproceso(String codproceso) {
        this.codproceso = codproceso;
    }

    public String getNombreproceso() {
        return nombreproceso;
    }

    public void setNombreproceso(String nombreproceso) {
        this.nombreproceso = nombreproceso;
    }

    public String getDescripcionproceso() {
        return descripcionproceso;
    }

    public void setDescripcionproceso(String descripcionproceso) {
        this.descripcionproceso = descripcionproceso;
    }

    public int getDigitador() {
        return digitador;
    }

    public void setDigitador(int digitador) {
        this.digitador = digitador;
    }

    public Date getFechadigitador() {
        return fechadigitador;
    }

    public void setFechadigitador(Date fechadigitador) {
        this.fechadigitador = fechadigitador;
    }

    public List<Noconformidad> getNoconformidadList() {
        return noconformidadList;
    }

    public void setNoconformidadList(List<Noconformidad> noconformidadList) {
        this.noconformidadList = noconformidadList;
    }

    public List<Detalleordenproduccion> getDetalleordenproduccionList() {
        return detalleordenproduccionList;
    }

    public void setDetalleordenproduccionList(List<Detalleordenproduccion> detalleordenproduccionList) {
        this.detalleordenproduccionList = detalleordenproduccionList;
    }

    public Lineaproduccion getLineaproduccionFk() {
        return lineaproduccionFk;
    }

    public void setLineaproduccionFk(Lineaproduccion lineaproduccionFk) {
        this.lineaproduccionFk = lineaproduccionFk;
    }

    public List<Tiempoproduccion> getTiempoproduccionList() {
        return tiempoproduccionList;
    }

    public void setTiempoproduccionList(List<Tiempoproduccion> tiempoproduccionList) {
        this.tiempoproduccionList = tiempoproduccionList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codproceso != null ? codproceso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Proceso)) {
            return false;
        }
        Proceso other = (Proceso) object;
        if ((this.codproceso == null && other.codproceso != null) || (this.codproceso != null && !this.codproceso.equals(other.codproceso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mrp.persistencia.entity.Proceso[ codproceso=" + codproceso + " ]";
    }
    
}
